《深入理解ES6》笔记 | 您所在的位置:网站首页 › 深入剖析JS类的staticpublicprivateprotected › 《深入理解ES6》笔记 |
和ES5中使用构造函数不同的是,在ES6中,我们将原型的实现写在了类中,但本质上还是一样的,都是需要新建一个类名,然后实现构造函数,再实现原型方法。 **私有属性:**在class中实现私有属性,只需要在构造方法中定义this.xx = xx。 类声明和函数声明的区别和特点 1、函数声明可以被提升,类声明不能提升。 2、类声明中的代码自动强行运行在严格模式下。 3、类中的所有方法都是不可枚举的,而自定义类型中,可以通过Object.defineProperty()手工指定不可枚举属性。 4、每个类都有一个[[construct]]的方法。 5、只能使用new来调用类的构造函数。 6、不能在类中修改类名。 类表达式 类有2种表现形式:声明式和表达式。 类是一等公民 Java函数是一等公民,类也设计成一等公民。 1、可以将类作为参数传入函数。 2、通过立即调用类构造函数可以创建单例。 访问器属性 类支持在原型上定义访问器属性。 可计算成员名称 可计算成员是指使用方括号包裹一个表达式,如下面定义了一个变量m,然后使用[m]设置为类A的原型方法。 生成器方法 回顾一下上一章讲的生成器,生成器是一个返回迭代器的函数。在类中,我们也可以使用生成器方法。 这个写法很有趣,我们新增一个原型方法稍微改动一下。 静态成员 静态成员是指在方法名或属性名前面加上static关键字,和普通方法不一样的是,static修饰的方法不能在实例中访问,只能在类中直接访问。 继承与派生类 我们在写react的时候,自定义的组件会继承React.Component。 A叫做派生类,在派生类中,如果使用了构造方法,就必须使用super()。 关于super使用的几点要求: 1、只可以在派生类中使用super。派生类是指继承自其它类的新类。 2、在构造函数中访问this之前要调用super(),负责初始化this。 3、如果不想调用super,可以让类的构造函数返回一个对象。 类方法遮蔽 我们可以在继承的类中重写父类的方法。 静态成员继承 **父类中的静态成员,也可以继承到派生类中。**静态成员继承只能通过派生类访问,不能通过派生类的实例访问。 派生自表达式的类 很好理解,就是指父类可以是一个表达式。 内建对象的继承 有些牛逼的人觉得使用内建的Array不够爽,就希望ECMA提供一种继承内建对象的方法,然后那帮大神们就把这个功能添加到class中了。 Symbol.species 该用法我还没有接触过,目前只知道在内建对象中使用了该方法,如果在类中调用this.constructor,使用Symbol.species可以让派生类重写返回类型。 在构造函数中使用new.target new.target通常表示当前的构造函数名。通常我们使用new.target来阻止直接实例化基类,下面是这个例子的实现。 总结 本章只有一个知识点,那就是class的使用,最开始的声明class,到后面的继承派生类,都是非常常用的写法,还有静态成员的使用。 如果上面的那些例子你练习的不够爽,或许你该找个react基础demo简单的使用class来练练手了。返回搜狐,查看更多 |
CopyRight 2018-2019 实验室设备网 版权所有 |